package com.young.launch_task_init.core.task

import android.app.Application
import com.young.launch_task_init.core.task.base.BaseTask

/**
 * Author：young
 * .
 * Time： 31/3/2023 上午9:59 周五
 * .
 * Desc：同步任务
 *
 * 第三方库的初始化方法是同步的，就可以构建同步任务
 *
 * 例如：MMKV 的初始化 MMKV.initialize(this);
 */
abstract class SyncTask : BaseTask() {

    override fun doTask(application: Application) {
        // 真正执行任务
        runTask(application)
        isInitCompleted = true
    }


    /**
     * 异步任务执行
     * @param application 应用程序上下文
     */
    protected abstract fun runTask(application: Application)


    override fun toString(): String {
        return "${this::class.java.simpleName}(${getParamStr()})"
    }
}